package org.kisekiproject.evaluator {
	import flash.events.IEventDispatcher;

	/**
	 * A function that can change its result dynamically.
	 * The implementing class should dispatch a Event.CHANGE event
	 * if the result changes.
	 */
	public interface IFunction extends IEventDispatcher {

		/**
		 * Set arguments to the function.
		 */
		function set arguments(value:Array):void;

		/**
		 * Get return value of the function.
		 */
		function get value():Object;
	}
}